package cc.magicjson.example.demo.event;

import org.springframework.context.ApplicationListener;

/**
 * {@link ApplicationListener} 这里不使用E extends CustomSpringApplicationEvent为了简单
 * 创建监听器监听所构建的自定义的事件对象 参考Spring ApplicationListener
 *
 * @author <a href="mailto:it_magicjson@163.com">MagicJson</a>
 * @since 1.0.0
 */
@FunctionalInterface
public interface CustomSpringApplicationEventListener {
    /**
     * 监听CustomSpringApplicationEvent
     *
     * @param event CustomSpringApplicationEvent
     */
    void onEvent(CustomSpringApplicationEvent event);

    /**
     * 默认支持异步
     *
     * @return true 支持异步
     */
    default boolean supportsAsyncExecution() {
        return true;
    }

}
